Implement resolution of version requirements
authorAlex Crichton <alex@alexcrichton.com>
Fri, 17 Oct 2014 15:17:17 +0000 (08:17 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Wed, 22 Oct 2014 18:29:37 +0000 (11:29 -0700)
commit5851827379a4bf32caf43af3ad8505c3d18b133c
treee0043cf2e774d28cdd4b6e7811e0748c570b31fd
parentd51fe548dd9a36994a19f455e250d6b199b2e788
Implement resolution of version requirements

This commit extends the support in cargo's resolver to start resolving packages
with multiple versions as well as package requirements. This is a crucial step
forward when impelmenting the cargo registry as multiple versions will be
uploaded to the registry quite quickly!

This implements a fairly naive solution which should at least help cargo get out
the gates initially. This impelments a depth-first-search of the pacakage
dependency graph with a few sorting heuristics along the way to help out
resolution as it goes along.

Resolution errors will likely improve over time, but this commit does make an
effort to try to get some good error messages right off the bat.
Cargo.toml
Makefile.in
src/cargo/core/resolver/mod.rs
src/cargo/core/summary.rs
src/cargo/util/graph.rs
tests/resolve.rs [new file with mode: 0644]
tests/test_cargo_compile.rs
tests/test_cargo_registry.rs